package com.ruoyi.basedata.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 欠费明细对象 t_bill_arrears
 * 
 * @author gdqt
 * @date 2025-04-23
 */
@TableName("t_bill_arrears")
public class BillArrears extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 欠费主键 */
    @TableId(value="id",type = IdType.AUTO)
    private Long id;

    /** 能耗分类（从数据字典获取） */
    @Excel(name = "能耗分类", readConverterExp = "从=数据字典获取")
    @TableField("energy_use_classification")
    private String energyUseClassification;

    /** 用户编号 */
    @Excel(name = "用户编号")
    @TableField("user_id")
    private String userId;

    /** 表编号 */
    @Excel(name = "表编号")
    @TableField("terminal_id")
    private String terminalId;

    /** 起始抄表读数 */
    @Excel(name = "起始抄表读数")
    @TableField("start_reading")
    private BigDecimal startReading;

    /** 终止抄表读数 */
    @Excel(name = "终止抄表读数")
    @TableField("end_reading")
    private BigDecimal endReading;

    /** 用量 */
    @Excel(name = "用量")
    @TableField("total_val")
    private BigDecimal totalVal;

    /** 单价 */
    @Excel(name = "单价")
    @TableField("unit_price")
    private BigDecimal unitPrice;

    /** 违约金 */
    @Excel(name = "违约金")
    @TableField("late_fee")
    private BigDecimal lateFee;

    /** 抄表时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "抄表时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("read_date")
    private Date readDate;

    /** 状态(0:未核销 1:已核销) */
    @Excel(name = "状态(0:未核销 1:已核销)")
    @TableField("status")
    private Integer status;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setEnergyUseClassification(String energyUseClassification) 
    {
        this.energyUseClassification = energyUseClassification;
    }

    public String getEnergyUseClassification() 
    {
        return energyUseClassification;
    }
    public void setUserId(String userId) 
    {
        this.userId = userId;
    }

    public String getUserId() 
    {
        return userId;
    }
    public void setTerminalId(String terminalId) 
    {
        this.terminalId = terminalId;
    }

    public String getTerminalId() 
    {
        return terminalId;
    }
    public void setStartReading(BigDecimal startReading) 
    {
        this.startReading = startReading;
    }

    public BigDecimal getStartReading() 
    {
        return startReading;
    }
    public void setEndReading(BigDecimal endReading) 
    {
        this.endReading = endReading;
    }

    public BigDecimal getEndReading() 
    {
        return endReading;
    }
    public void setTotalVal(BigDecimal totalVal) 
    {
        this.totalVal = totalVal;
    }

    public BigDecimal getTotalVal() 
    {
        return totalVal;
    }
    public void setUnitPrice(BigDecimal unitPrice) 
    {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getUnitPrice() 
    {
        return unitPrice;
    }
    public void setLateFee(BigDecimal lateFee) 
    {
        this.lateFee = lateFee;
    }

    public BigDecimal getLateFee() 
    {
        return lateFee;
    }
    public void setReadDate(Date readDate) 
    {
        this.readDate = readDate;
    }

    public Date getReadDate() 
    {
        return readDate;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("energyUseClassification", getEnergyUseClassification())
            .append("userId", getUserId())
            .append("terminalId", getTerminalId())
            .append("startReading", getStartReading())
            .append("endReading", getEndReading())
            .append("totalVal", getTotalVal())
            .append("unitPrice", getUnitPrice())
            .append("lateFee", getLateFee())
            .append("readDate", getReadDate())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
